Proceso de cálculo de víctimas documentadas
Reclutamiento de niños, niñas y adolescentes desagregados por año del hecho: 1990-2017
Introducción
Si es su primera vez trabajando con los datos, no está muy familiarizado con el
paquete o simplemente quiere conocer más sobre el proyecto y el objetivo de
estos ejemplos y el paquete verdata, consulte:
https://github.com/HRDAG/CO-examples/blob/main/Introducción/output/Introducción.html
antes de continuar.
En este ejemplo, se ilustrará el proceso para obtener los datos documentados de la presente violación. Específicamente, se replicará la figura (inf-izq) de la página 12 del anexo metodológico del proyecto.
Autenticando e importando la base de datos (réplicas)
Se comienza autenticando e importando nuestras réplicas de reclutamiento, esto a
través de dos funciones del paquete verdata: las funciones confirm_files y
read_replicates. La autenticación de los datos es pertinente dado que estos
fueron publicados con la licencia de atribución 4.0 internacional de Creative Commons
(CC BY 4.0). Esta licencia permite la distribución y modificación de la
información y, considerando que usted pudo haber llegado a estos datos por medio
de diferentes fuentes, es importante que sepa si han sido modificados o no, para
lo que puede hacer uso de estas dos funciones.
La función confirm_files autentica los archivos que han sido descargados.
Considerandoque cada violación tiene hasta 100 réplicas, esta función permite
autenticar cada uno de estos archivos sin necesidad de leerlos a R. Esto, en
caso de querer ahorrar recursos computacionales, o en caso de que no vaya a
realizar su análisis con todas las réplicas. Esta función devolverá una tabla
con dos columnas: una indicando la ruta del archivo y otra indicando si el archivo
es igual al publicado. En caso de que al menos uno de los archivos no sea igual,
la función devuelve el mensaje “Some replicate file contents do not match the published versions”.
confirmar <- verdata::confirm_files(here::here("verdata-parquet/reclutamiento"),
"reclutamiento", c(1:10))Además, la función read_replicates permite 2 cosas: leer las réplicas a R en
una sola tabla (ya sea a partir de un formato csv o parquet) y verificar
que el contenido de las réplicas sea exactamente igual al publicado.
Cuando el argumento crash tiene su valor por default (TRUE), la función
retorna un objeto (data frame) si el contenido es igual, y el mensaje
“The content of the files is not identical to the ones published. This means the results of the analysis may potentially be inconsistent.” si el contenido de la base fue
previamente alterado/modificado, lo que quiere decir que los análisis que el
usuario realice serán inconsistentes y llevarán a resultados erróneos. Este
último error significa que los datos no se han leído a R. Si por alguna
razón usted quiere leer dicha información a pesar de saber que no son los mismos
datos originalmente publicados, puede cambiar el argumento crash a FALSE, y,
en ese caso, podrá ver los datos, junto con el mismo mensaje de advertencia.
Así, en este ejemplo trabajaremos las réplicas 1 a la 10. Usted puede trabajar con las réplicas que desee de acuerdo con los análisis que desee realizar, ya que, como se ha mencionado, esta información documentada se refiere a las víctimas que fueron registradas originalmente en las bases (y en el que algunos registros contienen campos faltantes), es decir, contrario a los ejemplos de imputación, esta documentación no cambia para ninguna réplica, por lo que si usted quiere obtener lo que las fuentes documentaron o registraron, puede optar por diferentes números de réplica y no solamente las 10 primeras que se usaron en la Comisión de la Verdad.
replicas_datos <- verdata::read_replicates(here::here("verdata-parquet/reclutamiento"),
"reclutamiento", c(1:2))
paged_table(replicas_datos, options = list(rows.print = 10, cols.print = 5))Vemos que tenemos 38 452 registros, nuestras réplicas van desde la número 1 hasta la 10. Además, nuestros datos tienen información sobre la categoría de edad de la víctima, el presunto perpetrador, el sexo, el año del hecho, la pertenencia étnica, entre otros. Sin embargo, para centrarnos en un análisis más específico, tal como el realizado para el anexo metodológico, procederemos a transformar y/o filtrar algunas variables.
Filtrando las réplicas acorde con el filtro del anexo metodológico
La función filter_standard_cev nos permite transformar o filtrar nuestra
información. Por ejemplo, las víctimas que se documentaron como víctimas
de la ex-guerrilla FARC-EP en años posteriores a 2016 pasaron a ser víctimas de
otras guerrillas, ya que este primer grupo oficialmente dejó de existir después
de dicho año (perp_change = TRUE). Adicionalmente se genera una variable
relacionada con la categoría de edad (edad_c) que muestra si la víctima era
menor o adulto.
replicas_filtradas <- verdata::filter_standard_cev(replicas_datos,
"reclutamiento",
perp_change = TRUE)
paged_table(replicas_filtradas, options = list(rows.print = 10, cols.print = 5))Víctimas documentadas
Después de aplicados los filtros necesarios con la función anterior, es momento
de obtener la información de las víctimas documentadas por año del hecho.
Estos datos son aquellos que ya se observaban en la base integrada y que
en ocasiones contenían campos faltantes en algunas de las variables.
Usaremos la función summary_observed para calcular dicha documentación.
Como se puede ver, los argumentos de la función son: 1) la violación a analizar;
2) los datos replicas_filtradas; 3) strata_vars, que para este ejemplo
será la variable de yy_hecho, porque estamos analizando esta violación por
año; 4) le sigue el argumento de conflict_filter que filtra a aquellas
personas que fueron víctimas dentro del marco del conflicto armado (variable
is_conflict == TRUE) o no (variable is_conflict == FALSE). Recuerde que
para esta violación todas las víctimas fueron víctimas dentro de este marco
(== TRUE).
Esta función también incluye un argumento denominado 5) forced_dis_filter, que
aplica únicamente a la violación de desaparición. Esta indica si la víctima fue
desaparecida de forma “forzada” (forced_dis == TRUE) o no (forced_dis == FALSE).
También contamos con otros argumentos: 6) edad_minors_filter que filtra por
víctimas menores de edad (edad_minors_filter = TRUE) documentadas por los
proyectos y/o instituciones y 7) include_props que permite incluir el cálculo
de las proporciones (incluyendo -si contiene- los NA) para las variables de
interés (include_props = TRUE). Cabe aclarar que el número de digitos por
defecto es = 2.
tabla_documentada <- verdata::summary_observed("reclutamiento",
replicas_filtradas,
strata_vars = "yy_hecho",
conflict_filter = TRUE,
forced_dis_filter = FALSE,
edad_minors_filter = TRUE,
include_props = FALSE)
paged_table(tabla_documentada, options = list(rows.print = 4, cols.print = 4))tabla_documentada <- tabla_documentada %>%
mutate(yy_hecho = as.numeric(yy_hecho)) %>%
arrange(desc(observed))
g <- tabla_documentada %>%
ggplot(aes(x = yy_hecho)) +
geom_line(aes(y = observed, color = "Observado"), size = 1) +
theme_minimal() +
theme(axis.text.x = element_text(size = 11, angle = 90),
axis.title.y = element_text(size = 11),
axis.ticks.x = element_line(size = 0.1)) +
scale_x_continuous(breaks = seq(1980, 2016, 2)) +
theme(legend.position = "bottom") +
labs(x = "Año",
y = "Número de víctimas",
color = "") +
scale_colour_manual(values = c("Observado" = "#434343"))
gAl igual que la figura del anexo metodológico, la línea de color negro muestra los datos documentados. Se observa entonces que el año 2000 es el año con más reclutamientos documentados (1 208 víctimas), seguido del año 2002 (1 207 víctimas), 1999 ((1 160), así como 2003 (1 133)
Ahora bien, esta documentación se refiere a víctimas de las cuales sabemos que efectivamente fueron menores de edad; pero, ¿qué pasa con las víctimas sin información acerca de esta característica? Pues bien, esta información (junto con la ya documentada) se abordará en el próximo ejemplo sobre imputación en el que también graficaremos nuestros resultados a nivel documentado e imputado.
Por último, guardamos los resultados (en formato .parquet) en una carpeta denominada “output-observed”, ya que esta tabla nos servirá como insumo para el cálculo de la combinación de las imputaciones (o réplicas) acorde con las reglas de combinación de Rubin.